#include <bits/stdc++.h>

using namespace std;

/*
给一个链表，若其中包含环，请找出该链表的环的入口结点，否则，输出null。
*/

struct ListNode {
    int val;
    struct ListNode *next;
    ListNode(int x) :
        val(x), next(NULL) {
    }
};
class Solution {
public:
    ListNode* EntryNodeOfLoop(ListNode* pHead)
    {
        if(pHead==NULL){
            return NULL;
        }

        ListNode *fast=pHead,*low=pHead;
        while(fast&&fast->next){
            fast=fast->next->next;
            low=low->next;
            if(fast==low) break;
        }

        if(fast==NULL||fast->next==NULL) return NULL;

        low=pHead;
        while(low!=fast){
            low=low->next;
            fast=fast->next;
        }
        return low;
    }
};

int main(){




    return 0;
}